#include <stdio.h>


int main()
{
    // //指针:变量
    // int* p = NULL; //指针用之前初始化为空
    // printf("%ld\n",sizeof(p)); //指针占8个字节

    // //指针变量 存 本地内存地址
    // int a = 10;
    // p = &a;// & ：取变量的地址符号
    // printf("%p\n",p); // %p 打印地址的值，一般是16进制

    // printf("%d\n",*p); // * 取值符号 : 取指针中存的地址的内存值


    // // *p = 100;
    // // p = 200;
    // // printf("a = %d\n",*p);//内存错误就是访问非法地址，导致内存错误
    // //存有非法地址的指针 ： 野指针
    // p = 200;
    // //当指针不再使用时，置空
    // p = NULL;  // 空指针
    // printf("a = %d\n",*p);

    //二级指针
    int a = 10;
    int *p = &a;
    int **p2 = &p;
    printf("%d\n",**p2);//*p2 == p
                        //*p2 == &a
                        //**p2 == *&a == a              
    return 0;
}